import { Global, Module } from '@nestjs/common';
import { AuthController } from './auth.controller';
import { AuthService } from './auth.service';
import { UserModule } from 'src/user/user.module';
import { PassportModule } from '@nestjs/passport';
import { JwtModule } from '@nestjs/jwt';
import { JwtStrategy } from './auth.strategy';
import { CaslAbilityService } from './casl-ability.service';

@Global() // 全局导出模块 需要在 casl.guards 管道中使用 CaslAbilityService 实例
@Module({
  imports: [
    UserModule,
    PassportModule,
    JwtModule.register({
        secret: process.env.SECRET,
        // 不设置就不会有过期时间 不建议
        signOptions: {expiresIn: '1d'},
    }),
  ], // 导入user模块
  controllers: [AuthController],
  providers: [AuthService, JwtStrategy , CaslAbilityService], // 导入jwt 、 casl
  exports:[CaslAbilityService] // 导出casl 实例
})
export class AuthModule {}
